﻿// Copyright 2010 Microsoft Corporation
// Licensed under the Apache License, Version 2.0 (the "License"); 
// You may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 

// THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR 
// CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, 
// INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR 
// CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
// MERCHANTABLITY OR NON-INFRINGEMENT. 

// See the Apache 2 License for the specific language governing 
// permissions and limitations under the License.

using System.Web;
using System.Web.Mvc;
using ASPNETSimpleMVC3.Hrd;
using Microsoft.IdentityModel.Web;

namespace ASPNETSimpleMVC3.Util
{
    public class RequireAuthenticationAttribute : FilterAttribute, IAuthorizationFilter
    {
        public void OnAuthorization(AuthorizationContext filterContext)
        {
            // If the user is not authenticated the result view will be the HrdPage
            if (!filterContext.HttpContext.Request.IsAuthenticated)
            {
                filterContext.Result = new ViewResult()
                {
                    ViewName = "HrdPage",
                    ViewData = filterContext.Controller.ViewData,
                    MasterName = "_Layout",
                    TempData = filterContext.Controller.TempData
                };
            }
            
            // Request is already authenticated. We don't need to do anything
        }
    }
}